package com.bd.scm.domain.dto.schedule;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author yufc
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ScheduleGroupOrderDto implements Serializable {
    
    private static final long serialVersionUID = 1L;

    /**
     * 自增ID
     */
    @ApiModelProperty(value="自增ID", hidden = true)
    @TableId(type = IdType.AUTO)
    private Integer id;

    /**
     * 班组ID
     */
    @ApiModelProperty(value="班组ID", required = true)
    private Integer groupId;

    /**
     * 班次ID
     */
    @ApiModelProperty(value="班次ID")
    private Integer shiftId;

    @ApiModelProperty(value="班次编号", required = true)
    private String shiftNo;

    /**
     * 开始日期
     */
    @ApiModelProperty(value="开始日期", required = true)
    @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
    private Date shiftTimeBegin;

    /**
     * 结束日期
     */
    @ApiModelProperty(value="结束日期", required = true)
    @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
    private Date shiftTimeEnd;

    /**
     * 排班类型
     1：普通排班
     2：规律排班
     */
    @ApiModelProperty(value="排班类型", notes = "1：普通排班,   2：规律排班", required = true)
    private Integer shiftType;

    /**
     * 排班员工ID集合
     */
    @ApiModelProperty(value="排班员工ID集合", notes = "多个员工用逗号隔开")
    private String userIds;

    /**
     * 创建人
     */
    @ApiModelProperty(value="创建人", hidden = true)
    private Long createId;

    /**
     * 创建时间
     */
    @ApiModelProperty(value="创建时间", hidden = true)
    @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
    private Date createTime;

    /**
     * 修改人
     */
    @ApiModelProperty(value="修改人", hidden = true)
    private Long updateId;

    /**
     * 修改时间
     */
    @ApiModelProperty(value="修改时间", hidden = true)
    @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
    private Date updateTime;

    /**
     * 操作人ID
     */
    @ApiModelProperty(value="操作人ID", hidden = true)
    private Long operateId;

    /**
     * IP地址
     */
    @ApiModelProperty(value="IP地址", hidden = true)
    private String ip;
}